package ee.maoinvest.backend.model.dao;

import java.util.List;

import ee.maoinvest.backend.model.data.ElectricityContract;
import ee.maoinvest.backend.model.data.ElectricityContractType;
import ee.maoinvest.backend.model.data.ElectricityMeter;

public interface ElectricityContractDAO 
{
	//basic CRUD
	public int insertElectricityContract(ElectricityContract electricityContract);
	public ElectricityContract getElectricityContractByID(int electricityContractID);
	public List<ElectricityContract> getAllElectricityContractsThatAreNotWrittenOff();
	public int updateElectricityContract(ElectricityContract updatedElectricityContract);
	public int deleteElectricityContract(int electricityContractID);
	
	public ElectricityContract getDefaultElectricityContract();
	public List<ElectricityContract> getAllElectricityContractsForOuterTerritoryMetersThatAreNotWrittenOff();
	public List<ElectricityContractType> getAllElectricityContractTypes();
	public int setIsElectricityContractInUse(int electricityContractID, boolean isInUse);
	
	public int endSpecificElectricityMeterElectricityContractPeriod(ElectricityMeter electricityMeter);
	public List<ElectricityContract> getAllElectricityContractsForLocalTerritoryElectricityMetersThatAreNotWrittenOff();
}
